-- stack: in -- format: 8 (HyperCard 1) -- flags: 0x4000 (can't delete) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 1 -- first background id: 2792 -- card count: 1 -- first card id: 3477 -- list block id: 2056 -- print block id: 0 -- font table block id: 0 -- style table block id: 0 -- free block count: 0 -- free size: 0 bytes -- total size: 14656 bytes -- stack block size: 5120 bytes -- created by hypercard version: 0x00000000 -- compacted by hypercard version: 0x00000000 -- modified by hypercard version: 0x00000000 -- opened by hypercard version: 0x00000000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x0000220000002200 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0xCC003300CC003300 -- patterns[4]: 0xCC883322CC883322 -- patterns[5]: 0xEE88BB22EE88BB22 -- patterns[6]: 0xEECCBB33EECCBB33 -- patterns[7]: 0xFFCCFF33FFCCFF33 -- patterns[8]: 0xFFEEFFBBFFEEFFBB -- patterns[9]: 0xFFFFFFBBFFFFFFBB -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xFF80808080808080 -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0xF87422478F172271 -- patterns[37]: 0xBF00BFBFB0B0B0B0 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- -- two dashes denote comments, ignored by HyperTalk -- ModiFone Script on idle if the short time ≠ field "loc time" then put the short time into field "loc time" end if pass idle end idle on openStack global dialNumber, dialArea, HoldAreaCode -- dialNumber is the thing the modem calls -- dialArea is the area code added to dialNumber -- HoldAreaCode is a global variable which carries the area code -- from the Area Code Stack over to here. -- I could have just used DialArea but the script uses it for some -- other functions. put empty into field "long dist preamble" put empty into msg show message box put HoldAreaCode into field "long dist preamble" -- this field is Dial For Long Distance end openStack on Open Stack... put empty into HoldAreaCode doMenu end Open Stack... -- this flushes the area code if you Open another -- stack from ModiFone. You can delete this if you -- want to retain the last area code. on dial string global dialNumber, dialArea put string into dialNumber -- gets the number from the dialog box if string is empty then exit dial -- can't dial nothing -- (Comment from Apple stack): -- we do not handle international phone numbers correctly if dialNumber is empty then exit dial -- can't dial nobody if dialArea contains field "area code" then put field "preamble" before dialNumber else put field "long dist preamble" before dialNumber -- the script won't let you put your own area code in front of a -- local number, so it substitutes the thing you need to dial a local -- outside line put "Now dialing: " & dialNumber -- puts words into msg box if hilite of button "modem (tone dialing)" is true then send "dial " & quote & dialNumber & quote & " with modem " & quote & "ATS0=0DT" & quote to HyperCard -- tone dialing routine which I don't quite understand if hilite of button "modem (pulse dialing)" is true then send "dial " & quote & dialNumber & quote & " with modem " & quote & "ATS0=0DP" & quote to HyperCard -- ditto if hilite of button "speaker (tone dialing)" is true then send "dial " & quote & dialNumber & quote to HyperCard -- ditto put empty -- flushes number. Delete to retain for redialing put empty into HoldAreaCode -- empties a/c end dial -- all the following is fancy string cleaning stuff that I did not touch on findAreaCode global dialArea,dialNumber stripNonDigits if first char of dialNumber is "9" and "-, " contains char 2 of dialNumber then put empty into char 1 of dialNumber -- remove "9" stripNonDigits end if get char 2 of dialNumber if it is 0 or it is 1 then put " " after char 3 of dialNumber put first word of dialNumber into dialArea put empty into first word of dialNumber stripNonDigits else put field "area code" into dialArea stripTrailer end findAreaCode on stripNonDigits global dialNumber repeat for the length of dialNumber get first char of dialNumber if it is in "0123456789" then exit stripNonDigits put empty into first char of dialNumber end repeat end stripNonDigits on stripTrailer global dialNumber repeat for the length of dialNumber get last char of dialNumber if it is in "0123456789" then exit stripTrailer put empty into last char of dialNumber end repeat end stripTrailer